cet: Fix memory leaks.
authoroliskoli <oliskoli>
Wed, 25 Jun 2008 20:44:15 +0000 (20:44 +0000)
committeroliskoli <oliskoli>
Wed, 25 Jun 2008 20:44:15 +0000 (20:44 +0000)
cet.c

diff --git a/cet.c b/cet.c
index 2df913314eb65d6f07673ec14ef8153ada086153..5dc805294f9e9616aef46188e618ecc50e73be25 100644 (file)
--- a/cet.c
+++ b/cet.c
@@ -451,7 +451,8 @@ cet_str_any_to_uni(const char *src, const cet_cs_vec_t *vec, int *length)
        int len;
        short *res, *sout;
        
-       if (vec->ucs4_count == 0) utf8 = cet_utf8_strdup(src); /* UTF-8 -> clean UTF-8 */
+       if (! src) utf8 = xstrdup("");
+       else if (vec->ucs4_count == 0) utf8 = cet_utf8_strdup(src); /* UTF-8 -> clean UTF-8 */
        else utf8 = cet_str_any_to_utf8(src, vec);
 
        len = cet_utf8_strlen(utf8);
@@ -472,6 +473,7 @@ cet_str_any_to_uni(const char *src, const cet_cs_vec_t *vec, int *length)
 
        *sout = 0;
        if (length) *length = len;
+       xfree(utf8);
 
        return res;
 }